package com.diaohw.module.metadata.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.diaohw.module.metadata.obj.convert.MetaConvert;
import com.diaohw.module.metadata.obj.dto.MetaDTO;
import com.diaohw.module.metadata.obj.dto.MetaItemDTO;
import com.diaohw.module.metadata.obj.entity.MetaDO;
import com.diaohw.module.metadata.obj.query.MetaItemQuery;
import com.diaohw.module.metadata.obj.query.MetaQuery;
import com.diaohw.module.metadata.obj.vo.MetaItemVO;
import com.diaohw.module.metadata.obj.vo.MetaVO;
import com.diaohw.platform.common.obj.page.PageResultVo;

import java.util.List;

/**
 * <p>
 * 元数据信息 服务类
 * </p>
 *
 * @author D-Hw
 * @since 2025-04-07
 */
public interface MetaService extends IService<MetaDO> {

    MetaConvert INSTANCE = MetaConvert.INSTANCE;
    String REDIS_META_VERSION = "META:VERSION";

    /**
     * 新增
     */
    Boolean create(MetaDTO data);

    /**
     * 更新
     */
    Boolean update(String id, MetaDTO data);

    /**
     * 新增
     */
    Boolean create(MetaItemDTO data);

    /**
     * 更新
     */
    Boolean update(String id, MetaItemDTO data);

    /**
     * 删除
     */
    Boolean delete(String id);

    /**
     * 依据ID查看信息
     */
    MetaVO detail(String id);

    /**
     * 查询列表
     */
    List<MetaVO> findByList(MetaQuery query);

    /**
     * 查询列表
     */
    List<MetaItemVO> findByList(MetaItemQuery query);

    /**
     * 分页查看
     */
    PageResultVo<MetaVO> findByPage(MetaQuery query);

    /**
     * 分页查看
     */
    PageResultVo<MetaItemVO> findByPage(MetaItemQuery query);
}
